A variety of protocols for communication, storage and retrieval of video images are known. Invariably, the protocols are developed with a particular emphasis on reducing signal bandwidth. With a reduction of signal bandwidth, storage devices are able to store more images and communications systems can send more images at a given communication rate. Reduction in signal bandwidth increases the overall capacity of the system using the signal.
However, bandwidth reduction may be associated with particular disadvantages. For instance, certain known coding systems are lossy, they introduce errors which may affect the perceptual quality of the decoded image. Others may achieve significant bandwidth reduction for certain types of images but may not achieve any bandwidth reduction for others. Accordingly, the selection of coding schemes must be carefully considered.
Accordingly, there is a need in the art for an image coding scheme that reduces signal bandwidth without introducing perceptually significant errors.
The disadvantages of the prior art are alleviated to a great extent by a predictive coding scheme in which a new block of image data is predicted from three blocks of image data that preceded the new block. For this new block, an encoder examines image data of blocks that are horizontally and vertically adjacent to the new block. The encoder compares the image data of each of the two adjacent blocks to image data of a third block positioned horizontally adjacent to the vertically adjacent block (diagonally above the new block). From these comparisons, a horizontal and a vertical gradient is determined. Based on the values of the gradients, the encoder predicts the image data of the new block to be the image data of the horizontally or vertically adjacent block most similar to it. The encoder then determines a residual difference between the predicted value of the image data and the actual value of the image data for the new block and encodes the residual. A decoder performs an inverse prediction, predicting image data for the new block based upon horizontal and vertical gradients and adding the residual thereto to reconstruct the actual image data of the new block. This process is lossless.